home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
32URDOOR.ZIP
/
URDOOR.DOC
< prev
next >
Wrap
Text File
|
1995-04-30
|
15KB
|
523 lines
-URDooR- Version 3.20
Compiled 05/01/95
Copyrighted (c) 1993-95 by Kenneth Bledsoe
INTRODUCTION
URDooR is a complete set of Turbo Pascal routines designed to
enable programmers to easily write DooRs for a BBS. The following
is a just a few of URDooR's features:
Assembly language serial input/output routines for
speed and efficiency.
Full support of speeds up to 115,00 baud and the 16550
FIFO.
ANSi emulation is provided , so no need for ANSi.SYS
driver to be resident.
Support for all the popular dropfile formats.
EX. QBBS, WildCat, SpitFire, PCboard 1.5x Etc....
Note: Command Line options are available so no need for DropFiles;
Does not need a fossil driver..
Support for comports 1-4, on interrupts 1-7..
Multi-Tasker Aware..Ex.. WIN-NT,DV,OS/2, Etc... and will give up
timeslices while waiting for user input.
New Features in 3.10:
1. URRip Function Added
USING URDooR
The only requirements needed to integrate URDooR into your
program are the following two lines in your program:
{$M,$4000,0,0}
Uses URDooR;
The first line is a {$M} compiler directive and is necessary to
enable URDooR's Drop to DOS function. If this line is omitted
from your program this function will not be enabled. Note: This
directive also affects your program,s heap space. Be sure to
adjust the final to values accordingly if you dynamically
allocate memory.
The second line is a "uses" statement that simply instructs Turbo
Pascal to include the URDooR.TPU unit in your program.
Running Your URDooR DooR
To run a URDooR based program, at least one command line
parameter is required:
Example: Door Config
Where Door is the name of the executable file and Config is the
name of the configuration file. The configuration file can be any
name, but it must be an ASCii text file in the following format:
Line 1: BBS Type
Line 2: Path and Filename of dropfile
Line 3: BBS Name
Line 4: Sysop's First Name
Line 5: Sysop's Last Name
Line 6: Comport Interrupt {A value between 1-7} {0=Use Fossil}
Line 7: Use Error Log {Value TRUE or FALSE}
Here is an example config file.
Note: This file should be have been included with your copy of
URDooR as URDooR.CFG
RA
C:\RA\DORINFO1.DEF
The Outer Limits
Kenneth
Bledsoe
3
TRUE
NOTE: ALL LINES MUST BE PRESENT, but URDooR will not read past line 7..
EXTENDED LINE DEFINITIONS:
LINE ONE:
Supported BBS Types for Line 1 are as follows..
Dorinfo.def : Line 1 should read RA for Remote Access
compatible dorinfo.def dropfile format...
Callinfo.bbs : Line 1 should read WC2 for Wildcat vers 2
compatible dropfile format...
Door.sys : Line 1 should read WC3 for Wildcat vers 3
compatible dropfile format...
PCboard.SYS : Line 1 should read PCB for PCBoard 1.5x
support.
SFDooRs.dat : Line 1 should read SF for SpitFire compatible
dropfile format...
CommandLine : Line 1 should read CL if you plan on passing user
info to the door through command line options versus
a supported dropfile...
LINE TWO:
Must have the full path and name of the dropfile in
it, unless CL is used in the first line then this line can
be left blank..
LINE THREE:
The Name of the BBS to be Passed to URDooR..
LINE FOUR & FIVE:
The First and Last Name of Sysop to be Passed to URRooR respectivly;
LINE SIX:
Comport interrupt supports for line 6 are as follows..
The value in line 6 is the interrupt of the comport
given in the dropfile. Valid interrupts are 0,1,2,3,4,5,6, & 7..
If you have problems with your program, this is the first
place to check. If the wrong interrupt is requested, your
computer will probably Hang...
NOTE: If you pass < 0 > as the IRQ requested then the unit will
use the Fossil driver. {If one is loaded. If not it will error
out with the error 'No Fossil Driver loaded"}
LINE SEVEN:
Enables or Disables use of error logging..
If line 7 reads TRUE when an error occurs it is written in
he current directory to a file named ERRORLOG. This can be
disabled by specifying FALSE instead.
To run a URDooR DooR Locally specify local in the command line
following the configuration file name.
Ex. Door Door1.cfg Local
The Command Line Option:
If you plan on using this option please note line two in the config file still has
to present though it can be left blank.
Parameter(1) should be the name of the Config file the door will use.
Parameter(2) Will enable or disable ANI graphics..
Note: If 'ANSI','1','GR','COLOR', or 'TRUE' or passed to
this paramter ANSI will be set to true Else ANSi will
be disabled. If your BBS passes something else here
you can always ask the user if he wants graphics and
enable them with the ANSi Global variable..
Or just contact me and I can update the Unit..
Parameter(3) Pass the Baud Rate Here
Note: Legal Values are {IF 0 passed then Local set to True}
0,300,600,1200,2400,4800,9600,19200,38400,57600,115200
Parameter(4) Pass the User First Name Here
Parameter(5) Pass the User Last Name Here
Paramater(6) Pass ComPort Here
FUNCTION KEYS
The following list contains the function keys available to the
sysop while a door is running:
Key(s) Function
[F1] Toggles between the user status window and a
help display that displays the function keys
available.
[F2] Activates chat mode.
Note: To exit chat mode press the ESC key.
[F3] Allows the sysop to drop to DOS on the local
console. Displays appropriate message to
user.
[F4] Terminates door, without hanging up caller.
[F10] Terminates door and hangs up caller.
GLOBAL VARIABLES
The following are global variables provided for your convience:
ANSi: boolean;
Set to true if caller has ANSi color graphics enabled or
false if monocrome.
Baud : Longint;
Contains the connected baud rate;
BBSName : String[25];
Contains the name of the BBS.
DooRName : String[25];
Contains the name of the door running. This will be
displayed in the user status window. Note: It is the door
author's responsibility to assign a value to this variable.
OpSyS : String[7];
Contains the name of the operating system currently running;
ex.. "WINDOWS" "DOS" etc..
Sec : Longint;
Contains the security level of the urer on line.
SysopF : String;
Contains the first name of the sysop.
SysopL : String;
Contains the last name of the sysop.
TimeLeft : Longint;
Contains the number of minutes remaing for the user on line.
TimeOn : Longint;
Contains the number of minutes the user has been on line.
UserF : String;
Contains the first name of the user on line.
UserL : String;
Contains the last name of the user on line.
UserLoc: String;
Contains the location of the user on line.
URDooR Procedures and Functions
The following is a description of the procedure and functions
provided by URDooR:
procedure URcleol;
The URcleol will clear the line from the cursor postion to the
end of the line and then return the cursor to its previous
position;
Procedure URcls;
The URcls procedure clears both the local and remote screen
and returns the cursor to the upper left corner;
Function URdisplayfile(Filename: String;Pause: Boolean;): Boolean;
The URdisplayfile procedure will display an ANSi/ASCii file
to both the local and remote screen. If pause is true then
the file will pause every 24 lines.
NOTE: If If the file has ANSI code embeded in it and the user
has has disabled then the ANSI codes will be stripped from
the file..I am considering adding VT100 emulation.. If you think
I should add this please contact me.. If a few people reply I
will add it in the next release.
Note: This Function now returns a value of false if it us unable to
display the file. ex. File not found or File Access Denied etc..
Function URbackcolor: Byte;
The URbackcolor function will return the current background
color in the URsetcolor format.
Function URforecolor: Byte;
The URforecolor function will return the current foreground
color in the URsetcolor format.
Procedure URgotoxy(X,Y: Shortint);
The URgotoxy procedure will move the cursor to the new
position on the local and remote screens. If X,Y are invalid
locations then their values are adjusted to the nearested
valid value.
NOTE: This procedure will be ignored if ANSi is False.
Function URKeyPressed: Boolean;
The URKeyPressed function returns a value of true if a key
has been pressed on either the local or remote keyboards.
The key that was pressed will be returned by the next call
URreadkey..
NOTE: This function does not detect extended keys, such
[F1],Alt,Ctrl Keys...
Function URreadkey: Char;
The URreadkey function will return the first character
entered on either the local or remote console.
Note: The Character will not be echoed to the screen.
Function URreadi: Integer;
The URreadi function will return a integer value from either
the local or remote console.
Function URreadli: Longint;
The URreadli function will return a longinteger value from
either the local or remote console;
Function URreadstr: String;
The URreadstr function will return a string value from
either the local or remote console;
Function URreadstr: StringLen(Len : byte);
The URreadstr function will return a string value from
either the local or remote console up to the length of
the value < len > passed to it;
Procedure URrefreshscreen;
The URrefreshscreen procedure will save the current local
screen, Then clear both the local and remote screens, and
finally restore the local and remote screens.
NOTE1: Saves the first 24 lines ONLY of the local screen.
NOTE2: Use as a Refresh command in your programs, so a user
can refresh a screen that might have gotten garbled
due to line noise.
Procedure URrestorescreen;
The URrestorescreen procedure will restore the screen
previously stored by URsavescreen to the local and remote
displays.
Note: URsavescreen MUST BE called First.
Function URRip: Boolean;
The URRip function will attempt to detect if the remote caller has
RIP graphics enabled. If so this function will return true.
Procedure URsavescreen;
The URsavescreen procedure will save the current local
screen to a variable to be restored by URRestorescreen.
Note1: Saves ONLY the first 24 lines.
Note2: Probably will never need to be used.
Procedure URsetcolor(F,B:Byte);
The URsetcolor procedure sets the foreground color ('F') and
the background color ('B') for the local and remote
displays.
Note: If ANSI is disabled this procedure is ignored.
Foreground Colors Background Colors
0 - Black 0 - Black
1 - Blue 1 - Blue
2 - Green 2 - Green
3 - Cyan 3 - Cyan
4 - Red 4 - Red
5 - Magneta 5 - Magneta
6 - Brown 6 - Brown
7 - LightGray 7 - LightGray
8 - DarkGray
9 - LightBlue
10 - LightGreen
11 - LightCyan
12 - LightRed
13 - LightMagneta
14 - Yellow
15 - White
NOTE: Add 16 to the Foreground color to enable Blink.
Function URsc(F,B:Byte): string;
The URsc function is exactly the same as the URsetcolor procedure
except that it will return a string and allow URwrite & URwriteln
to set the approprate color..
Ex(URwrite(URsc(14,0)+'This Text Will Be In YELLOW'));
NOTE: If ANSi is not enabled the URwrite & URwriteln will ignore
the URsc color commands...
Procedure URwrite(Anystr: String);
The URwrite procedure will send a string to the local and
remote displays.
Procedure URwriteln(Anystr: String);
The URwriteln procedure will send a string to the local and
remote displays followed by a cariage return and linefeed.
Procedure URwritei(Anyi: Integer);
The URwritei procedure will send a integer to the local and
remote displays.
Note: NO carrieage return is sent. If required, call
URwriteln with a blank string. Ex. URwriteln('');
Procedure URwriteli(Anyli: Integer);
The URwriteli procedure will send a longinteger to the local
and remote display with no carriage return.
Note: NO carriage return is sent. If required, call
URwriteln with a blank string. Ex. URwriteln('');
NOTE: URDooR still uses its own exit procedures but NO longer passes
an exitcode. So you can freely pass your own exit code to your
own Exit procedure if you write one.
SUPPORT
You can obtain support by contacting my BBS:
Kenneth Bledsoe
The Outer Limits
(713)344-0526 BBS
FIDO@1:106/50
The latest version of URDooR can FREQ under the MAGIC name URDOOR
The latest release information is also available..
Or you can send me netmail to 1:106/50
Support to unregistered users is on an As I Can basis..But I will
do my best to reply within 24 hours to all problems.
To register please print the file Register.DOC.